using Godot;

namespace MyCraft2;

public static class BlockInstances
{
    public static readonly Block Grass = new("grass",
        "res://textures/blocks/grass/grass_side.png",
        "res://textures/blocks/grass/grass_side.png",
        "res://textures/blocks/grass/grass_top.png",
        "res://textures/blocks/grass/grass_bottom.png",
        "res://textures/blocks/grass/grass_side.png",
        "res://textures/blocks/grass/grass_side.png",
        putAudioStreamPath:"res://audios/grass_put.mp3",
        destroyAudioStreamPath:"res://audios/grass_destroy.ogg",
        updAlbedoColor: Colors.YellowGreen);

    public static readonly Block Stone = new("stone",
        "res://textures/blocks/stone/stone.png",
        "res://textures/blocks/stone/stone.png",
        "res://textures/blocks/stone/stone.png",
        "res://textures/blocks/stone/stone.png",
        "res://textures/blocks/stone/stone.png",
        "res://textures/blocks/stone/stone.png",
        putAudioStreamPath:"res://audios/stone_destroy.ogg",
        destroyAudioStreamPath:"res://audios/stone_destroy.ogg"
    );

    public static readonly Block OakPlank = new("oak_plank",
        "res://textures/blocks/oak/oak_plank.png",
        "res://textures/blocks/oak/oak_plank.png",
        "res://textures/blocks/oak/oak_plank.png",
        "res://textures/blocks/oak/oak_plank.png",
        "res://textures/blocks/oak/oak_plank.png",
        "res://textures/blocks/oak/oak_plank.png",
        putAudioStreamPath:"res://audios/plank_destroy.ogg",
        destroyAudioStreamPath:"res://audios/plank_destroy.ogg"
    );

    internal static void Register()
    {
        Block.Register(Grass);
        Block.Register(Stone);
        Block.Register(OakPlank);
    }
}